// Mixins.styl
// Snippets of reusable CSS to develop faster and keep code readable
// -----------------------------------------------------------------
// UTILITY MIXINS
// --------------------------------------------------

// Webkit-style focus
// ------------------
tab-focus()
  // Default
  outline: thin dotted #333
  // Webkit
  outline: 5px auto -webkit-focus-ring-color
  outline-offset: (-2px)

// Center-align a block level element
// ----------------------------------
center-block()
  display: block
  margin-left: auto
  margin-right: auto

// IE7 inline-block
// ----------------
ie7-inline-block()
  *display: inline /* IE7 inline-block hack */
  *zoom: 1

// IE7 likes to collapse whitespace on either side of the inline-block elements.
// Ems because we're attempting to match the width of a space character. Left
// version is for form buttons, which typically come after other elements, and
// right version is for icons, which come before. Applying both is ok, but it will
// mean that space between those elements will be .6em (~2 space characters) in IE7,
// instead of the 1 space in other browsers.
ie7-restore-left-whitespace()
  *margin-left: .3em
  &:first-child
    *margin-left: 0
ie7-restore-right-whitespace()
  *margin-right: .3em
  &:last-child
    *margin-left: 0

// Sizing shortcuts
// -------------------------
size($height = 5px, $width = 5px)
  width: $width
  height: $height

square($size = 5px)
  size($size, $size)

// Placeholder text
// -------------------------
placeholder($color = $placeholderText)
  :-moz-placeholder
    color: $color
  ::-webkit-input-placeholder
    color: $color

// Text overflow
// -------------------------
// Requires inline-block or block for proper styling
text-overflow()
  overflow: hidden
  text-overflow: ellipsis
  white-space: nowrap

// FONTS
// --------------------------------------------------
font-family-serif()
  font-family: Georgia, "Times New Roman", Times, serif

font-family-sans-serif()
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif

font-family-monospace()
  font-family: Menlo, Monaco, "Courier New", monospace

font-shorthand($size = $baseFontSize, $weight = normal, $lineHeight = $baseLineHeight)
  font-size: $size
  font-weight: $weight
  line-height: $lineHeight

font-serif($size = $baseFontSize, $weight = normal, $lineHeight = $baseLineHeight)
  font-family-serif()
  font-shorthand($size, $weight, $lineHeight)

font-sans-serif($size = $baseFontSize, $weight = normal, $lineHeight = $baseLineHeight)
  font-family-sans-serif()
  font-shorthand($size, $weight, $lineHeight)

font-monospace($size = $baseFontSize, $weight = normal, $lineHeight = $baseLineHeight)
  font-family-monospace()
  font-shorthand($size, $weight, $lineHeight)

// GRID SYSTEM
// --------------------------------------------------
// Site container
// -------------------------
container-fixed()
  width: $gridRowWidth
  margin-left: auto
  margin-right: auto
  clearfix()

// Le grid system
// -------------------------
// Setup the mixins to be used

gridSystem-columns($gridGutterWidth, $gridColumnWidth, $gridRowWidth, $columns)
  width: ($gridColumnWidth * $columns) + ($gridGutterWidth * ($columns - 1))

gridSystem-offset($gridColumnWidth, $gridGutterWidth, $columns)
  margin-left: ($gridColumnWidth * $columns) + ($gridGutterWidth * ($columns - 1)) + ($gridGutterWidth * 2)

gridSystem-gridColumn($gridGutterWidth)
  float: left
  margin-left: $gridGutterWidth

// Take these values and mixins, and make 'em do their thang

gridSystem-generate($gridColumns, $gridColumnWidth, $gridGutterWidth)
  // Row surrounds the columns
  .row
    margin-left: $gridGutterWidth * (-1)
    clearfix()
  // Find all .span# classes within .row and give them the necessary properties for grid columns (supported by all browsers back to IE7, thanks $dhg)
  [class*="span"]
    gridSystem-gridColumn($gridGutterWidth)
  // Default columns
  .span1
    gridSystem-columns($gridGutterWidth, $gridColumnWidth, $gridRowWidth, 1)
  .span2
    gridSystem-columns($gridGutterWidth, $gridColumnWidth, $gridRowWidth, 2)
  .span3
    gridSystem-columns($gridGutterWidth, $gridColumnWidth, $gridRowWidth, 3)
  .span4
    gridSystem-columns($gridGutterWidth, $gridColumnWidth, $gridRowWidth, 4)
  .span5
    gridSystem-columns($gridGutterWidth, $gridColumnWidth, $gridRowWidth, 5)
  .span6
    gridSystem-columns($gridGutterWidth, $gridColumnWidth, $gridRowWidth, 6)
  .span7
    gridSystem-columns($gridGutterWidth, $gridColumnWidth, $gridRowWidth, 7)
  .span8
    gridSystem-columns($gridGutterWidth, $gridColumnWidth, $gridRowWidth, 8)
  .span9
    gridSystem-columns($gridGutterWidth, $gridColumnWidth, $gridRowWidth, 9)
  .span10
    gridSystem-columns($gridGutterWidth, $gridColumnWidth, $gridRowWidth, 10)
  .span11
    gridSystem-columns($gridGutterWidth, $gridColumnWidth, $gridRowWidth, 11)
  .span12,
  .container
    gridSystem-columns($gridGutterWidth, $gridColumnWidth, $gridRowWidth, 12)
  // Offset column options
  .offset1
    gridSystem-offset($gridColumnWidth, $gridGutterWidth, 1)
  .offset2
    gridSystem-offset($gridColumnWidth, $gridGutterWidth, 2)
  .offset3
    gridSystem-offset($gridColumnWidth, $gridGutterWidth, 3)
  .offset4
    gridSystem-offset($gridColumnWidth, $gridGutterWidth, 4)
  .offset5
    gridSystem-offset($gridColumnWidth, $gridGutterWidth, 5)
  .offset6
    gridSystem-offset($gridColumnWidth, $gridGutterWidth, 6)
  .offset7
    gridSystem-offset($gridColumnWidth, $gridGutterWidth, 7)
  .offset8
    gridSystem-offset($gridColumnWidth, $gridGutterWidth, 8)
  .offset9
    gridSystem-offset($gridColumnWidth, $gridGutterWidth, 9)
  .offset10
    gridSystem-offset($gridColumnWidth, $gridGutterWidth, 10)
  .offset11
    gridSystem-offset($gridColumnWidth, $gridGutterWidth, 11)

// Fluid grid system
// -------------------------
// Setup the mixins to be used

fluidGridSystem-columns($fluidGridGutterWidth, $fluidGridColumnWidth, $columns)
  width: 1% * ($fluidGridColumnWidth * $columns) + ($fluidGridGutterWidth * ($columns - 1))

fluidGridSystem-gridColumn($fluidGridGutterWidth)
  float: left
  margin-left: $fluidGridGutterWidth
  // Take these values and mixins, and make 'em do their thang

fluidGridSystem-generate($gridColumns, $fluidGridColumnWidth, $fluidGridGutterWidth)
  // Row surrounds the columns
  .row-fluid
    width: 100%
    clearfix()
    // Find all .span# classes within .row and give them the necessary properties for grid columns (supported by all browsers back to IE7, thanks @dhg)
    > [class*="span"]
      fluidGridSystem-gridColumn($fluidGridGutterWidth)
    > [class*="span"]:first-child
      margin-left: 0

    // Default columns
    .span1
      fluidGridSystem-columns($fluidGridGutterWidth, $fluidGridColumnWidth, 1)
    .span2
      fluidGridSystem-columns($fluidGridGutterWidth, $fluidGridColumnWidth, 2)
    .span3
      fluidGridSystem-columns($fluidGridGutterWidth, $fluidGridColumnWidth, 3)
    .span4
      fluidGridSystem-columns($fluidGridGutterWidth, $fluidGridColumnWidth, 4)
    .span5
      fluidGridSystem-columns($fluidGridGutterWidth, $fluidGridColumnWidth, 5)
    .span6
      fluidGridSystem-columns($fluidGridGutterWidth, $fluidGridColumnWidth, 6)
    .span7
      fluidGridSystem-columns($fluidGridGutterWidth, $fluidGridColumnWidth, 7)
    .span8
      fluidGridSystem-columns($fluidGridGutterWidth, $fluidGridColumnWidth, 8)
    .span9
      fluidGridSystem-columns($fluidGridGutterWidth, $fluidGridColumnWidth, 9)
    .span10
      fluidGridSystem-columns($fluidGridGutterWidth, $fluidGridColumnWidth, 10)
    .span11
      fluidGridSystem-columns($fluidGridGutterWidth, $fluidGridColumnWidth, 11)
    .span12
      fluidGridSystem-columns($fluidGridGutterWidth, $fluidGridColumnWidth, 12)

// Input grid system
// -------------------------
inputGridSystem-inputColumns($gridGutterWidth, $gridColumnWidth, $gridRowWidth, $columns)
  width: (($gridColumnWidth) * $columns) + ($gridGutterWidth * ($columns - 1)) - 10

inputGridSystem-generate($gridColumns, $gridColumnWidth, $gridGutterWidth)
  input,
  textarea,
  .uneditable-input
    &.span1
      inputGridSystem-inputColumns($gridGutterWidth, $gridColumnWidth, $gridRowWidth, 1)
    &.span2
      inputGridSystem-inputColumns($gridGutterWidth, $gridColumnWidth, $gridRowWidth, 2)
    &.span3
      inputGridSystem-inputColumns($gridGutterWidth, $gridColumnWidth, $gridRowWidth, 3)
    &.span4
      inputGridSystem-inputColumns($gridGutterWidth, $gridColumnWidth, $gridRowWidth, 4)
    &.span5
      inputGridSystem-inputColumns($gridGutterWidth, $gridColumnWidth, $gridRowWidth, 5)
    &.span6
      inputGridSystem-inputColumns($gridGutterWidth, $gridColumnWidth, $gridRowWidth, 6)
    &.span7
      inputGridSystem-inputColumns($gridGutterWidth, $gridColumnWidth, $gridRowWidth, 7)
    &.span8
      inputGridSystem-inputColumns($gridGutterWidth, $gridColumnWidth, $gridRowWidth, 8)
    &.span9
      inputGridSystem-inputColumns($gridGutterWidth, $gridColumnWidth, $gridRowWidth, 9)
    &.span10
      inputGridSystem-inputColumns($gridGutterWidth, $gridColumnWidth, $gridRowWidth, 10)
    &.span11
      inputGridSystem-inputColumns($gridGutterWidth, $gridColumnWidth, $gridRowWidth, 11)
    &.span12
      inputGridSystem-inputColumns($gridGutterWidth, $gridColumnWidth, $gridRowWidth, 12)


// Make a Grid
// -------------------------
// Use .makeRow and .makeColumn to assign semantic layouts grid system behavior
makeRow()
  margin-left: $gridGutterWidth * (-1)
  clearfix()

makeColumn($columns = 1)
  float: left
  margin-left: $gridGutterWidth
  width: ($gridColumnWidth * $columns) + ($gridGutterWidth * ($columns - 1))


// Form field states (used in forms.less)
// --------------------------------------------------

// Mixin for form field states
formFieldState($textColor = #555, $borderColor = #ccc, $backgroundColor = #f5f5f5)
  // Set the text color
  > label,
  .help-block,
  .help-inline
    color: $textColor

  // Style inputs accordingly
  input,
  select,
  textarea
    color: $textColor
    border-color: $borderColor
    &:focus
      border-color: darken($borderColor, 10%)
      box-shadow(0 0 6px lighten($borderColor, 20%))

  // Give a small background color for input-prepend/-append
  .input-prepend .add-on,
  .input-append .add-on
    color: $textColor
    background-color: $backgroundColor
    border-color: $textColor


// CSS3 PROPERTIES
// --------------------------------------------------

// // Transformations
rotate($degrees)
  transform: s("rotate(%s)", $degrees)

scale($ratio)
  transform: s("scale(%s)", $ratio)

translate($x = 0, $y = 0)
  transform: s("translate(%s, %s)", $x, $y)

skew($x = 0, $y = 0)
  transform: s("skew(%s, %s)", $x, $y)

translate3d($x = 0, $y = 0, $z = 0)
  transform: s("translate(%s, %s, %s)", $x, $y, $z)

// Resize anything
resizable($direction = both)
  resize: $direction // Options: horizontal, vertical, both
  overflow: auto // Safari fix

// CSS3 Content Columns
content-columns($columnCount, $columnGap = $gridColumnGutter)
  column-count: $columnCount
  column-gap: $columnGap


// BACKGROUNDS
// --------------------------------------------------
// Add an alphatransparency value to any background or border color (via Elyse Holladay)

translucent-background($color = $white, $alpha = 1)
  background-color: hsla(hue($color), saturation($color), lightness($color), $alpha)

translucent-border($color = $white, $alpha = 1)
  border-color: hsla(hue($color), saturation($color), lightness($color), $alpha)
  background-clip(padding-box)

// Gradient Bar Colors for buttons and alerts
gradientBar($primaryColor, $secondaryColor)
  gradient-vertical($primaryColor, $secondaryColor)
  border-color: $secondaryColor $secondaryColor darken($secondaryColor, 15%)
  border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) fadein(rgba(0,0,0,.1), 15%)

// Gradients

gradient-horizontal($startColor = #555, $endColor = #333)
  background-color: $endColor
  background-image: linear-gradient(left, $startColor, $endColor)
  background-repeat: repeat-x
  filter: s("progid:DXImageTransform.Microsoft.gradient(startColorstr='%s', endColorstr='%s', GradientType=1)",$startColor,$endColor) // IE9 and down

gradient-vertical($startColor = #555, $endColor = #333)
  background-color: mix($startColor, $endColor, 60%)
  background-image: linear-gradient(top, $startColor, $endColor)
  background-repeat: repeat-x
  filter: s("progid:DXImageTransform.Microsoft.gradient(startColorstr='%s', endColorstr='%s', GradientType=0)",$startColor,$endColor) // IE9 and down

gradient-directional($startColor = #555, $endColor = #333, $deg = 45deg)
  background-color: $endColor
  background-repeat: repeat-x
  background-image: linear-gradient($deg, $startColor, $endColor)

gradient-vertical-three-colors($startColor = #00b3ee, $midColor = #7a43b6, $colorStop = 50%, $endColor = #c3325f)
  background-color: mix($midColor, $endColor, 80%)
  background-image: linear-gradient(top, $startColor, $midColor $colorStop, $endColor)
  background-repeat: no-repeat
  filter: s("progid:DXImageTransform.Microsoft.gradient(startColorstr='%s', endColorstr='%s', GradientType=0)",$startColor,$endColor) // IE9 and down, gets no color-stop at all for proper fallback

gradient-radial($innerColor = #555, $outerColor = #333)
  background-color: $outerColor
  background-image: -webkit-gradient(radial, center center, 0, center center, 460, from($innerColor), to($outerColor))
  background-image: -webkit-radial-gradient(circle, $innerColor, $outerColor)
  background-image: -moz-radial-gradient(circle, $innerColor, $outerColor)
  background-image: -ms-radial-gradient(circle, $innerColor, $outerColor)
  background-repeat: no-repeat
  // Opera cannot do radial gradients yet

gradient-striped($color, $angle = top left)
  background-color: $color
  background-image: linear-gradient($angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent)

// Reset filters for IE
reset-filter()
  filter: unquote("progid:DXImageTransform.Microsoft.gradient(enabled = false)")

// Mixin for generating button backgrounds
// ---------------------------------------
buttonBackground($startColor, $endColor)
  // gradientBar will set the background to a pleasing blend of these, to support IE<=9
  gradientBar($startColor, $endColor)
  reset-filter()
  // in these cases the gradient won't cover the background, so we override
  &:hover, &:active, &.active, &.disabled, &[disabled]
    background-color: $endColor
  // IE 7 + 8 can't handle box-shadow to show active, so we darken a bit ourselves
  &:active,
  &.active
    background-color: darken($endColor, 10%) unquote("\9")

// COMPONENT MIXINS
// --------------------------------------------------
// POPOVER ARROWS
// -------------------------
// For tipsies and popovers

popoverArrow-top($arrowWidth = 5px)
  bottom: 0
  left: 50%
  margin-left: (- $arrowWidth)
  border-left: $arrowWidth solid transparent
  border-right: $arrowWidth solid transparent
  border-top: $arrowWidth solid $black

popoverArrow-left($arrowWidth = 5px)
  top: 50%
  right: 0
  margin-top: (- $arrowWidth)
  border-top: $arrowWidth solid transparent
  border-bottom: $arrowWidth solid transparent
  border-left: $arrowWidth solid $black

popoverArrow-bottom($arrowWidth = 5px)
  top: 0
  left: 50%
  margin-left: (- $arrowWidth)
  border-left: $arrowWidth solid transparent
  border-right: $arrowWidth solid transparent
  border-bottom: $arrowWidth solid $black

popoverArrow-right($arrowWidth = 5px)
  top: 50%
  left: 0
  margin-top: (- $arrowWidth)
  border-top: $arrowWidth solid transparent
  border-bottom: $arrowWidth solid transparent
  border-right: $arrowWidth solid $black

  // Clearfix for clearing floats like a boss h5bp.com/q

clearfix()
  zoom: 1
  &:before,
  &:after
    display: table
    content: ""
    zoom: 1
  &:after
    clear: both

.clearfix
  clearfix()


// Center-align a block level element
center-block()
  display: block
  margin-left: auto
  margin-right: auto

.center-block
  center-block()


// Sizing shortcuts
size(height = 5px, width = 5px)
  height: height
  width: width

square(size = 5px)
  size(size, size)

// Input placeholder text
placeholder(color = grayLight)
  :-moz-placeholder
    color: color
  ::-webkit-input-placeholder
    color: color

// Font Stacks
shorthand(weight = normal, size = 14px, lineHeight = 20px) 
  font-size: size
  font-weight: weight
  line-height: lineHeight

sans-serif(weight = normal, size = 14px, lineHeight = 20px)
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif
  font-size: size
  font-weight: weight
  line-height: lineHeight

serif(weight= normal, size = 14px, lineHeight = 20px)
  font-family: "Georgia", Times New Roman, Times, serif
  font-size: size
  font-weight: weight
  line-height: lineHeight

monospace(weight= normal, size= 12px, lineHeight= 20px)
  font-family: "Monaco", Courier New, monospace
  font-size: size
  font-weight: weight
  line-height: lineHeight

// Grid System
fixed-container()
  width: siteWidth
  margin-left: auto
  margin-right: auto
  clearfix()

.fixed-container
  fixed-container()

columns(columnSpan = 1)
  width: (gridColumnWidth * columnSpan) + (gridGutterWidth * (columnSpan - 1))

offset(columnOffset = 1)
  margin-left: (gridColumnWidth * columnOffset) + (gridGutterWidth * (columnOffset - 1)) + extraSpace

// Necessary grid styles for every column to make them appear next to each other horizontally
gridColumn()
  display: inline
  float: left
  margin-left: gridGutterWidth

// makeColumn can be used to mark any element (e.g., .content-primary) as a column without changing markup to .span something
makeColumn(columnSpan = 1)
  gridColumn()
  columns(columnSpan)

// Border Radius
borderRadius(radius = 5px)
  -webkit-border-radius: radius
  -moz-border-radius: radius
  border-radius: radius

boxSizing(type = border-box)
  -webkit-box-sizing: type 
  -moz-box-sizing: type    
  box-sizing: type

boxCenter()
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-pack: center;
  -webkit-box-align: center;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-pack: center;
  -moz-box-align: center;
  display: box;
  box-orient: horizontal;
  box-pack: center;
  box-align: center;

// Drop shadows
boxShadow() 
  -webkit-box-shadow: arguments
  -moz-box-shadow: arguments
  box-shadow: arguments

// Flexbox
boxFlex(flexVal = 1)
  -webkit-box-flex flexVal
  -moz-box-flex flexVal
  -ms-box-flex flexVal
  box-flex flexVal

// Transitions
normTransition(transition)
  -webkit-transition: transition
  -moz-transition: transition
  -ms-transition: transition
  -o-transition: transition
  transition: transition

normTransitionMulti(s)
str = s.replace("'", "")
  -webkit-transition: str
  -moz-transition: str
  -ms-transition: str
  -o-transition: str
  transition: str


// Background clipping
backgroundClip(clip)
  -webkit-background-clip: clip
  -moz-background-clip: clip
  background-clip: clip

// CSS3 Content Columns
content-columns(columnCount, columnGap = 20px)
  -webkit-column-count: columnCount
  -moz-column-count: columnCount
  column-count: columnCount
  -webkit-column-gap: columnGap
  -moz-column-gap: columnGap
  column-gap: columnGap

// Make any element resizable for prototyping
resizable(direction = both)
  resize: direction // Options are horizontal, vertical, both
  overflow: auto // Safari fix

// Add an alphatransparency value to any background or border color (via Elyse Holladay)
/*
.translucent 
  background(color = white, alpha = 1)
    background-color: hsla(hue(color), saturation(color), lightness(color), alpha)

  border(color = white, alpha = 1) 
    border-color: hsla(hue(color), saturation(color), lightness(color), alpha)
    background-clip: padding-box
*/

userSelect(type = none)
  -webkit-user-select: type
  -moz-user-select: type


// Gradients
gradient-horizontal(startColor = #555, endColor = #333)
  background-color: endColor
  background-repeat: repeat-x
  background-image: -khtml-gradient(linear, left top, right top, from(startColor), to(endColor)) // Konqueror
  background-image: -moz-linear-gradient(left, startColor, endColor) // FF 3.6+
  background-image: -ms-linear-gradient(left, startColor, endColor) // IE10
  background-image: -webkit-gradient(linear, left top, right top, color-stop(0%, startColor), color-stop(100%, endColor)) // Safari 4+, Chrome 2+
  background-image: -webkit-linear-gradient(left, startColor, endColor) // Safari 5.1+, Chrome 10+
  background-image: -o-linear-gradient(left, startColor, endColor) // Opera 11.10
  background-image: linear-gradient(left, startColor, endColor) // Le standard

gradient-vertical(startColor= #555, endColor= #333)
  background-color: endColor
  background-repeat: repeat-x
  background-image: -khtml-gradient(linear, left top, left bottom, from(startColor), to(endColor)) // Konqueror
  background-image: -moz-linear-gradient(top, startColor, endColor) // FF 3.6+
  background-image: -ms-linear-gradient(top, startColor, endColor) // IE10
  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, startColor), color-stop(100%, endColor)) // Safari 4+, Chrome 2+
  background-image: -webkit-linear-gradient(top, startColor, endColor) // Safari 5.1+, Chrome 10+
  background-image: -o-linear-gradient(top, startColor, endColor) // Opera 11.10
  background-image: linear-gradient(top, startColor, endColor) // The standard

gradient-directional(startColor= #555, endColor= #333, deg= 45deg) 
  background-color: endColor
  background-repeat: repeat-x
  background-image: -moz-linear-gradient(deg, startColor, endColor) // FF 3.6+
  background-image: -ms-linear-gradient(deg, startColor, endColor) // IE10
  background-image: -webkit-linear-gradient(deg, startColor, endColor) // Safari 5.1+, Chrome 10+
  background-image: -o-linear-gradient(deg, startColor, endColor) // Opera 11.10
  background-image: linear-gradient(deg, startColor, endColor) // The standard

gradient-vertical-three-colors(startColor= #00b3ee, midColor= #7a43b6, colorStop= 50%, endColor= #c3325f) 
  background-color: endColor
  background-repeat: no-repeat
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(startColor), color-stop(colorStop, midColor), to(endColor))
  background-image: -webkit-linear-gradient(startColor, midColor colorStop, endColor)
  background-image: -moz-linear-gradient(top, startColor, midColor colorStop, endColor)
  background-image: -ms-linear-gradient(startColor, midColor colorStop, endColor)
  background-image: -o-linear-gradient(startColor, midColor colorStop, endColor)
  background-image: linear-gradient(startColor, midColor colorStop, endColor)

// Gradient Bar Colors for buttons and alerts
gradientBar(primaryColor, secondaryColor)
  text-shadow: 0 -1px 0 rgba(0,0,0,.25)
  border-color: secondaryColor secondaryColor darken(secondaryColor, 15%)
  border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) fade-in( rgba(0,0,0,.1), 15% )

// Opacity
normOpacity(opacity = 100) 
  -khtml-opacity: (opacity/100)
  -moz-opacity: (opacity/100)
  opacity: (opacity/100)
